# 访问登录页  http://novel.hctestedu.com/user/login.html
# 输入用户名和密码
# 点击全部作品 点击三十万字以下
import time

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver=webdriver.Chrome()

driver.get("http://novel.hctestedu.com/user/login.html")
# 用户名  确定在dom树中就进行后续操作  在页面上存在
user_el=(By.ID,"txtUName")
el=WebDriverWait(driver,10).until(EC.presence_of_element_located(user_el))
el.send_keys("17730676645")

# 在在页面上不仅存在，而且可见
pwd_el=(By.ID,"txtPassword")
el=WebDriverWait(driver,10).until(EC.visibility_of_element_located(pwd_el))
el.send_keys("413301yl")

# 在在页面上不仅存在，而且可见,还可以操作了
login_btn=(By.XPATH,'//*[@id="btnLogin"]')
el=WebDriverWait(driver,10).until(EC.element_to_be_clickable(login_btn))
el.click()

# 检查标题是不是一致的-完全一致 title_is()
el=WebDriverWait(driver,10).until(EC.title_is("读书屋_原创小说网站"))
print('测试标题-相等：',el)
# 检查标题是不是一致的-包含 title_contains()
el=WebDriverWait(driver,10).until(EC.title_contains("读书屋"))
print('测试标题-包含：',el)


# all=(By.XPATH,'//*[@id="navModule"]/li[2]/a')
# el=WebDriverWait(driver,10).until(EC.text_to_be_present_in_element(all,"全部作品"))
# print('文本值是否一致',el)

# 点击全部作品

# el=WebDriverWait(driver,5).until(lambda x:x.find_element(By.PARTIAL_LINK_TEXT,'全部作品'))
# el.click()
driver.find_element(By.PARTIAL_LINK_TEXT,'全部作品').click()

# 点击三十万字以下
driver.find_element(By.PARTIAL_LINK_TEXT,'30万字以下').click()


time.sleep(5)
driver.quit()

# 错误提示语句：30万字以下有问题
#报错，报元素找不到，排查思路：
# 1.检查你的表达式正确  没问题
# 2.加等待  三种方式


# 总结：
# 1.找对错误位置 （ 报错的标准，页面上面哪个步骤没操作，大概率是这个步骤出错了，先让前面的内容能运行在说）
# 2.位置找对了之后  报元素找不到
# 排查思路：
# # 1.检查你的表达式正确  没问题
# # 2.加等待  三种方式  原理呢  代码程序运行速度非常快，网络加载速度慢，找不到元素；代码程序慢下来，等一会，页面加载出来之后，元素才加载出来，找不到元素
# 记死





# 1.全部作品作品点击

# 找错误的地方有问题，后面有在多思路都是空的

# 页面在哪个步骤出现问题


# 这里加等待问题；错误根本不在 30万字以下  提示有问题


